package com.microservice.salmon.db.entities;

import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;

@Table(name = "t_users")
@Data
@EqualsAndHashCode(of = "id")
public class User implements Serializable {

    private static final long serialVersionUID = 3091263952518854111L;

    /**
     * 主键
     */
    @Id
    private Integer id;

    /**
     * 登录名
     */
    @Column(name = "login_name")
    private String loginName;

    /**
     * 登录密码
     */
    private String password;

    /**
     * 用户类型
     */
    @Column(name = "user_type")
    private Byte userType;

    /**
     * 真实姓名
     */
    private String name;

    /**
     * 出生日期
     */
    private Date birthday;

    /**
     * 性别 0:保密 1：男 2：女
     */
    private Byte sex;

    /**
     * 会员头像
     */
    private String photo;

    /**
     * QQ
     */
    private String qq;

    /**
     * 手机
     */
    private String mobile;

    /**
     * 手座机
     */
    private String phone;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 用户积分
     */
    private Integer score;

    /**
     * 用户历史消费积分 跟会员等级有关
     */
    @Column(name = "sell_score")
    private Integer sellScore;

    /**
     * 最后一次登录IP
     */
    @Column(name = "last_ip")
    private String lastIp;

    /**
     * 最后一次登录时间
     */
    @Column(name = "last_time")
    private Date lastTime;

    /**
     * 第三方标识	0:系统本身 1:QQ登录 2: 微信
     */
    @Column(name = "user_from")
    private Byte userFrom;

    /**
     * 用户钱包金额
     */
    @Column(name = "user_money")
    private BigDecimal userMoney;

    /**
     * 冻结金额
     */
    @Column(name = "lock_money")
    private BigDecimal lockMoney;

    /**
     * 支付密码
     */
    @Column(name = "pay_pwd")
    private String payPwd;

    /**
     * 充值金额
     */
    @Column(name = "recharge_money")
    private BigDecimal rechargeMoney;

    /**
     * 是否是活跃用户 1 是 0 否
     */
    @Column(name = "is_inform")
    private Byte isInform;

    /**
     * 用户状态	0:停用 1:启用
     */
    @Column(name = "user_status")
    private Byte userStatus;

    /**
     * 删除标志 1:有效 -1:删除
     */
    @Column(name = "data_flag")
    private Byte dataFlag;

    /**
     * 创建时间
     */
    @Column(name = "create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @Column(name = "update_time")
    private Date updateTime;

}